import ttkbootstrap as ttk
from ttkbootstrap import Style, Window
from ttkbootstrap.constants import *

text_str=""""""
for i in range(300):
    text_str += f"这是第{i}行{'-'*130}\n"

# 创建主窗口
root = Window(themename="superhero")  # 将主题更改为有效的主题，例如 "cosmo" 或 "flatly"
root.title("ScrolledText Example")
root.geometry("633x600")

# 设置主题样式
style = ttk.Style()
style.configure("TFrame", padding=(10, 10))  # 设置内边距



# 创建外框架以容纳滚动条和文本框
frame = ttk.Frame(root)
frame.pack(fill=BOTH, expand=True)

# 创建文本框
# text_area = ttk.Text(frame, height=10, width=40, wrap=NONE)  # 修改：设置 wrap=tk.NONE 以支持横向滚动
text_area = ttk.Text(frame, wrap=NONE)  # 修改：设置 wrap=tk.NONE 以支持横向滚动
text_area.pack(side=LEFT, fill=BOTH, expand=True)

# 创建垂直滚动条并放置在右侧
scrollbar_y = ttk.Scrollbar(frame, orient=VERTICAL, command=text_area.yview)

# 创建横向滚动条并放置在底部
scrollbar_x = ttk.Scrollbar(frame, orient=HORIZONTAL, command=text_area.xview)  # 新增：创建横向滚动条


# scrollbar_y.pack(side=RIGHT, fill=Y)
# scrollbar_x.pack(side=BOTTOM, fill=X)  # 新增：放置横向滚动条

# 将滚动条和文本框放置到窗口中
text_area.grid(row=0, column=0, sticky='nsew')
scrollbar_y.grid(row=0, column=1, sticky='ns')
scrollbar_x.grid(row=1, column=0, sticky='ew')
# 配置窗口网格属性，使文本框和滚动条能够自动调整大小
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
# 将滚动条与文本框连接起来
text_area['yscrollcommand'] = scrollbar_y.set
text_area['xscrollcommand'] = scrollbar_x.set  # 修改：连接横向滚动条

# 插入一些文本到文本框中
text_area.insert(END, text_str)

# 运行主事件循环
root.mainloop()

